==================================================
Batch: 'Graphics'
--------------------------------------------------
name: 'command-buffer'
{
  PipelineBarrier2
    dependencyFlags: 0
    ImageBarrier:
      name:    Image-0
      stage:   0 ---> COMPUTE_SHADER
      access:  0 ---> SHADER_STORAGE_WRITE
      layout:  UNDEFINED ---> GENERAL
    ImageBarrier:
      name:    Image-1
      stage:   0 ---> COMPUTE_SHADER
      access:  0 ---> SHADER_STORAGE_WRITE
      layout:  UNDEFINED ---> GENERAL
    ImageBarrier:
      name:    Image-2
      stage:   0 ---> COMPUTE_SHADER
      access:  0 ---> SHADER_STORAGE_WRITE
      layout:  UNDEFINED ---> GENERAL
  ----------

  Dispatch
    descriptors:
      image: Image-0, layout: GENERAL
  ----------

  Dispatch
    descriptors:
      image: Image-1, layout: GENERAL
  ----------

  Dispatch
    descriptors:
      image: Image-2, layout: GENERAL
  ----------

  PipelineBarrier2
    dependencyFlags: 0
    ImageBarrier:
      name:    Image-0
      stage:   COMPUTE_SHADER ---> COPY
      access:  SHADER_STORAGE_WRITE ---> TRANSFER_READ
      layout:  GENERAL ---> TRANSFER_SRC_OPTIMAL
    ImageBarrier:
      name:    Image-1
      stage:   COMPUTE_SHADER ---> COPY
      access:  SHADER_STORAGE_WRITE ---> TRANSFER_READ
      layout:  GENERAL ---> TRANSFER_SRC_OPTIMAL
    ImageBarrier:
      name:    Image-2
      stage:   COMPUTE_SHADER ---> COPY
      access:  SHADER_STORAGE_WRITE ---> TRANSFER_READ
      layout:  GENERAL ---> TRANSFER_SRC_OPTIMAL
  ----------

}
--------------------------------------------------
name: 'command-buffer'
{
  CopyImageToBuffer
    src:       Image-0
    srcLayout: TRANSFER_SRC_OPTIMAL
    dst:       dynamic staging buffer
      copy { off:(0, 0, 0), ext:(16, 16, 1), mip:0, layers:[0, 1), COLOR } ---> { [0, 1024) }
  ----------

  CopyImageToBuffer
    src:       Image-1
    srcLayout: TRANSFER_SRC_OPTIMAL
    dst:       dynamic staging buffer
      copy { off:(0, 0, 0), ext:(16, 16, 1), mip:0, layers:[0, 1), COLOR } ---> { [1024, 2048) }
  ----------

  CopyImageToBuffer
    src:       Image-2
    srcLayout: TRANSFER_SRC_OPTIMAL
    dst:       dynamic staging buffer
      copy { off:(0, 0, 0), ext:(16, 16, 1), mip:0, layers:[0, 1), COLOR } ---> { [2048, 3072) }
  ----------

  PipelineBarrier2
    dependencyFlags: 0
    MemoryBarrier:
      stage:  COPY ---> HOST
      access: TRANSFER_WRITE ---> HOST_READ
  ----------

}
signalSemaphore = {
  'semaphore-4',  stage: ALL_COMMANDS,  value: 374
}
==================================================
==================================================
Batch: 'Graphics'
--------------------------------------------------
name: 'command-buffer'
{
  PipelineBarrier2
    dependencyFlags: 0
    ImageBarrier:
      name:    Image-0
      stage:   0 ---> COMPUTE_SHADER
      access:  0 ---> SHADER_STORAGE_WRITE
      layout:  UNDEFINED ---> GENERAL
    ImageBarrier:
      name:    Image-1
      stage:   0 ---> COMPUTE_SHADER
      access:  0 ---> SHADER_STORAGE_WRITE
      layout:  UNDEFINED ---> GENERAL
    ImageBarrier:
      name:    Image-2
      stage:   0 ---> COMPUTE_SHADER
      access:  0 ---> SHADER_STORAGE_WRITE
      layout:  UNDEFINED ---> GENERAL
  ----------

  Dispatch
    descriptors:
      image: Image-0, layout: GENERAL
  ----------

  Dispatch
    descriptors:
      image: Image-1, layout: GENERAL
  ----------

  Dispatch
    descriptors:
      image: Image-2, layout: GENERAL
  ----------

  PipelineBarrier2
    dependencyFlags: 0
    ImageBarrier:
      name:    Image-0
      stage:   COMPUTE_SHADER ---> COPY
      access:  SHADER_STORAGE_WRITE ---> TRANSFER_READ
      layout:  GENERAL ---> TRANSFER_SRC_OPTIMAL
    ImageBarrier:
      name:    Image-1
      stage:   COMPUTE_SHADER ---> COPY
      access:  SHADER_STORAGE_WRITE ---> TRANSFER_READ
      layout:  GENERAL ---> TRANSFER_SRC_OPTIMAL
    ImageBarrier:
      name:    Image-2
      stage:   COMPUTE_SHADER ---> COPY
      access:  SHADER_STORAGE_WRITE ---> TRANSFER_READ
      layout:  GENERAL ---> TRANSFER_SRC_OPTIMAL
  ----------

  CopyImageToBuffer
    src:       Image-0
    srcLayout: TRANSFER_SRC_OPTIMAL
    dst:       dynamic staging buffer
      copy { off:(0, 0, 0), ext:(16, 16, 1), mip:0, layers:[0, 1), COLOR } ---> { [0, 1024) }
  ----------

  CopyImageToBuffer
    src:       Image-1
    srcLayout: TRANSFER_SRC_OPTIMAL
    dst:       dynamic staging buffer
      copy { off:(0, 0, 0), ext:(16, 16, 1), mip:0, layers:[0, 1), COLOR } ---> { [1024, 2048) }
  ----------

  CopyImageToBuffer
    src:       Image-2
    srcLayout: TRANSFER_SRC_OPTIMAL
    dst:       dynamic staging buffer
      copy { off:(0, 0, 0), ext:(16, 16, 1), mip:0, layers:[0, 1), COLOR } ---> { [2048, 3072) }
  ----------

  PipelineBarrier2
    dependencyFlags: 0
    MemoryBarrier:
      stage:  COPY ---> HOST
      access: TRANSFER_WRITE ---> HOST_READ
  ----------

}
signalSemaphore = {
  'semaphore-4',  stage: ALL_COMMANDS,  value: 375
}
==================================================
==================================================
Batch: 'Graphics'
--------------------------------------------------
name: 'command-buffer'
{
  PipelineBarrier2
    dependencyFlags: 0
    ImageBarrier:
      name:    Image-0
      stage:   0 ---> COMPUTE_SHADER
      access:  0 ---> SHADER_STORAGE_WRITE
      layout:  UNDEFINED ---> GENERAL
    ImageBarrier:
      name:    Image-1
      stage:   0 ---> COMPUTE_SHADER
      access:  0 ---> SHADER_STORAGE_WRITE
      layout:  UNDEFINED ---> GENERAL
    ImageBarrier:
      name:    Image-2
      stage:   0 ---> COMPUTE_SHADER
      access:  0 ---> SHADER_STORAGE_WRITE
      layout:  UNDEFINED ---> GENERAL
  ----------

  Dispatch
    descriptors:
      image: Image-0, layout: GENERAL
  ----------

  Dispatch
    descriptors:
      image: Image-1, layout: GENERAL
  ----------

  Dispatch
    descriptors:
      image: Image-2, layout: GENERAL
  ----------

  PipelineBarrier2
    dependencyFlags: 0
    ImageBarrier:
      name:    Image-0
      stage:   COMPUTE_SHADER ---> COPY
      access:  SHADER_STORAGE_WRITE ---> TRANSFER_READ
      layout:  GENERAL ---> TRANSFER_SRC_OPTIMAL
    ImageBarrier:
      name:    Image-1
      stage:   COMPUTE_SHADER ---> COPY
      access:  SHADER_STORAGE_WRITE ---> TRANSFER_READ
      layout:  GENERAL ---> TRANSFER_SRC_OPTIMAL
    ImageBarrier:
      name:    Image-2
      stage:   COMPUTE_SHADER ---> COPY
      access:  SHADER_STORAGE_WRITE ---> TRANSFER_READ
      layout:  GENERAL ---> TRANSFER_SRC_OPTIMAL
  ----------

}
--------------------------------------------------
name: 'command-buffer'
{
  CopyImageToBuffer
    src:       Image-0
    srcLayout: TRANSFER_SRC_OPTIMAL
    dst:       dynamic staging buffer
      copy { off:(0, 0, 0), ext:(16, 16, 1), mip:0, layers:[0, 1), COLOR } ---> { [0, 1024) }
  ----------

  CopyImageToBuffer
    src:       Image-1
    srcLayout: TRANSFER_SRC_OPTIMAL
    dst:       dynamic staging buffer
      copy { off:(0, 0, 0), ext:(16, 16, 1), mip:0, layers:[0, 1), COLOR } ---> { [1024, 2048) }
  ----------

  CopyImageToBuffer
    src:       Image-2
    srcLayout: TRANSFER_SRC_OPTIMAL
    dst:       dynamic staging buffer
      copy { off:(0, 0, 0), ext:(16, 16, 1), mip:0, layers:[0, 1), COLOR } ---> { [2048, 3072) }
  ----------

  PipelineBarrier2
    dependencyFlags: 0
    MemoryBarrier:
      stage:  COPY ---> HOST
      access: TRANSFER_WRITE ---> HOST_READ
  ----------

}
signalSemaphore = {
  'semaphore-4',  stage: ALL_COMMANDS,  value: 376
}
==================================================
